package com.cotasul.persistencia.config;

import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;



public class PropriedadesDeConfiguracao {
	
	private final Properties propriedades = new Properties();
	
	private PropriedadesDeConfiguracao() {
		try{
			File f = new File(PropriedadesDeConfiguracaoEnum.DATABASE_CONFIG_FILE.value);
			
			if (f.isFile()){
				this.propriedades.load(new FileInputStream(f));				
			}
			else{
				this.propriedades.load(PropriedadesDeConfiguracao.class.getClassLoader().getResourceAsStream(PropriedadesDeConfiguracaoEnum.DATABASE_CONFIG_FILE.value));
			}
		}catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	private static class PropriedadadesDeConfiguracaoInstancia{
		private static PropriedadesDeConfiguracao _INSTANCE = new PropriedadesDeConfiguracao();
	}
	
	public static PropriedadesDeConfiguracao getInstance(){
		return PropriedadadesDeConfiguracaoInstancia._INSTANCE;
	}
	
	public String getValorPropriedade(PropriedadesDeConfiguracaoEnum propriedade){
		final String valor = this.propriedades.getProperty(propriedade.value);
		
		if (valor == null || "".equals(valor)){
			throw new RuntimeException();
		}
		
		return valor;
	}
	
}
